package com.project.service;

import com.project.bean.TradeBean;
import com.project.bean.UserBean;

/**
 * 业务层接口
 */
public interface IUserService {
    /**
     * 登录
     * @param userName
     * @param password
     * @return 登录的用户，登陆失败，返回null
     */
     UserBean login(String userName,String password);

    /**
     * 存钱,同时添加交易明细
     * @param code 用户的账号
     * @param account 金额
     */
     void setMoney(String code,double account);

    /**
     * 取款
     * 1.按账号查询账号对象
     * 2.比较账号对象的金额和取款金额，如果取款金额大于余额，返回false
     * 3.如果余额充足，将账号减少金额
     * 4，记录交易明细
     * @param code 账号
     * @param account 取款金额
     * @return 是否成功，如果账号余额不足则返回false；
     */
     boolean drawMoney(String code,double account);

    /**
     * 转账
     * 1.按原账号和目标账号，查询原账号对象和目标账号对象
     * 2，如果目标账号对象为null，返回“目标账号不存在”
     * 3.如果原账号的金额小于转账金额，返回”余额不足“
     * 4.原账号减去金额
     * 5.目标账号加上金额
     * 6.添加原账号转出金额的交易明细
     * 7.添加目标账号转入金额的交易明细
     * @param code 转账的账号
     * @param targetCode 目标账号
     * @param account 金额
     * @return 是否成功
     */
    public String transferMoney(String code,String targetCode,double account);

    /**
     * 按账号查询账号对象
     * @param code 账号
     * @return 账号对象
     */
    public UserBean queryMoney(String code);


}
